//! 工具模块
//! 
//! 提供各种辅助功能
//! 
//! 文件编码：UTF-8（默认）
//! 文件后缀：推荐使用 `。汇`，也支持其他后缀如 `.asm`

use std::fs;
use crate::error::{AssemblerError, Result};

/// 读取文件内容（UTF-8编码）
/// 
/// # 文件格式
/// - 编码：UTF-8
/// - 后缀：推荐 `。汇`，也支持 `.asm` 等其他后缀
pub fn read_file(path: &str) -> Result<String> {
    fs::read_to_string(path)
        .map_err(|e| AssemblerError::IoError {
            message: format!("无法读取文件 {}: {}", path, e),
        })
}

/// 写入文件内容
pub fn write_file(path: &str, content: &[u8]) -> Result<()> {
    fs::write(path, content)
        .map_err(|e| AssemblerError::IoError {
            message: format!("无法写入文件 {}: {}", path, e),
        })
}

